package cn.zhl.excel.handle;

import cn.zhl.excel.eo.ExcelEo;
import cn.zhl.excel.listener.ExcelListener;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.read.metadata.ReadSheet;
import org.junit.Test;

/**
 * @program: demos
 * @description:
 * @author: 刘振华
 * @create: 2020-10-27 16:38
 **/
public class TestExcel {
	//经测试，没有用
	@Test
	public void readExcel(){
		String fileName = "C:\\Users\\Administrator\\Desktop\\2020年下半年小劳保发放名单—邮件版.xlsx";
		// 读取全部sheet
		// 这里需要注意 DemoDataListener的doAfterAllAnalysed 会在每个sheet读取完毕后调用一次。然后所有sheet都会往同一个DemoDataListener里面写
		EasyExcel.read(fileName, ExcelEo.class, new ExcelListener()).doReadAll();

		// 读取部分sheet
		ExcelReader excelReader = null;
		try {
			excelReader = EasyExcel.read(fileName).build();

			// 这里为了简单 所以注册了 同样的head 和Listener 自己使用功能必须不同的Listener
			ReadSheet readSheet1 =
				EasyExcel.readSheet("sh").head(ExcelEo.class)
					.registerReadListener(new ExcelListener()).build();
			// 这里注意 一定要把sheet1 sheet2 一起传进去，不然有个问题就是03版的excel 会读取多次，浪费性能
			excelReader.read(readSheet1);
		} finally {
			if (excelReader != null) {
				// 这里千万别忘记关闭，读的时候会创建临时文件，到时磁盘会崩的
				excelReader.finish();
			}
		}
	}
}
